lib-viewport · crate
kinogaki-viewport-ui
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.
- Repository
- lib-viewport (kinogaki/lib-viewport)
- Folder
libs/lib-viewport/crates/ui- Source
- 8 files, 1,130 lines
- Tests
- 1 file, 62 lines
What it is
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. Applications draw the rendered view texture (from kinogaki-viewport-gpu) and route input through these pieces; what a gizmo drag edits stays with the application's editing context.
Depends on
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-math | lib-math | normal | Kinogaki's vectors, points, matrices, quaternions and deterministic elementary functions. |
kinogaki-ui | lib-ui | normal | Kinogaki UI: the immediate-mode UI framework Kinogaki applications are built on. |
kinogaki-viewport-core | lib-viewport | normal | Kinogaki viewport core: what a 3D viewport shows, independent of any GPU API or UI toolkit. |
Third-party
None.
Used by
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-editor | Core and the app | normal | Kinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one. |
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. |
Modules
gizmoTransform gizmo: arrow/plane handles move, rings rotate, and square/plane/center handles scale; the Manipulator (T) combines them.32 linesgizmo::geometryTransform handle geometry in screen space: projection of the gizmo frame, plane quads and rotation rings, and drag deltas along axes and planes.223 linesgizmo::paintHit testing and painting of move/rotate/scale handles.300 lineslabelsPoint numbers over a view (Houdini's point number display).195 lineslayoutPane layouts for one or four views.45 linesnavigationCamera navigation from pointer input, Maya's and Blender's both: Alt + left drag orbits, Alt + middle drag pans and Alt + right drag dollies (Maya); a middle drag orbits and Shift + middle drag pans (Blender).117 linesview_cube(private)Six-axis orientation widget (named ViewCube in the reference application): axis balls in the viewport's top-right corner.212 lines
Public types and traits
At the crate root
Structs ViewCubeViewCubeResponse
Enums TransformTool
By module: 7 public types and traits in 5 modules
gizmo TransformTool
gizmo::geometry FrameHandle
labels Label
navigation Move
view_cube ViewCubeViewCubeResponse
Besides these, 12 public functions at module level.
